﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Empresa.Sistema.Datos.Entidades;
using Empresa.Sistema.Aplicacion;

namespace Empresa.Sistema.Presentacion
{
    public partial class mntLibros : Form
    {

        #region "Instanciar"

        private static mntLibros m_FormDefInstance;
        public static mntLibros DefInstance
        {
            get
            {
                if (m_FormDefInstance == null || m_FormDefInstance.IsDisposed)
                    m_FormDefInstance = new mntLibros();
                return m_FormDefInstance;
            }
            set
            {
                m_FormDefInstance = value;
            }
        }

        #endregion


        public mntLibros()
        {
            InitializeComponent();
        }

        List<Libro> lista = new List<Libro>();
        public Libro lib;
        public string accion;

        private string buscar = string.Empty;

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            accion = "adicionar";
            var regLibro = new regLibros();
            regLibro.Owner = this;
            regLibro.ShowDialog();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            accion = "modificar";
            var regLibro = new regLibros();
            regLibro.Owner = this;
            regLibro.ShowDialog();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            accion = "eliminar";
            var regLibro = new regLibros();
            regLibro.Owner = this;
            regLibro.ShowDialog(); 
        }

        private void txtNombre_TextChanged(object sender, EventArgs e)
        {
            lista = new Libros().ConsultaPorNombre(txtNombre.Text);
            dgvLibros.AutoGenerateColumns = false;
            dgvLibros.DataSource = lista;
        }

        private void mntLibros_Load(object sender, EventArgs e)
        {
            lista = new Libros().Listar();
            dgvLibros.AutoGenerateColumns = false;
            dgvLibros.DataSource = lista;

            //if (((regPrestamos)this.Owner).)
            try { buscar = ((regPrestamos)this.Owner).buscar; }
            catch (Exception ex) { }

            if (buscar == "libro") 
            {
                btnAgregar.Enabled = false;
                btnModificar.Enabled = false;
                btnEliminar.Enabled = false;
            }
        }

        private void dgvLibros_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvLibros.CurrentCell.RowIndex > 0)
            {
                lib = (Libro)lista[dgvLibros.CurrentCell.RowIndex];
            }
        }

        private void dgvLibros_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (buscar == "libro")
            {
                if (dgvLibros.SelectedRows.Count >= 0)
                {
                    ((regPrestamos)this.Owner).itemLibro.IdLibro = lista[dgvLibros.CurrentCell.RowIndex].Id;
                    ((regPrestamos)this.Owner).itemLibro.Nombre = lista[dgvLibros.CurrentCell.RowIndex].Nombre;

                    this.Close();
                }
            }

        }
    }
}
